import static lombok.Yield.yield;
import java.lang.Iterable;
class YieldTryBlock {
YieldTryBlock() {
super();
}
public @java.lang.SuppressWarnings("all") Iterable<String> test() {
class $YielderTest implements java.util.Iterator<String>, java.lang.Iterable<String>, java.io.Closeable {
private boolean b;
private RuntimeException e;
private java.lang.Throwable $yieldException1;
private int $state1;
private int $state;
private boolean $hasNext;
private boolean $nextDefined;
private String $next;
private $YielderTest() {
super();
}
public java.util.Iterator<String> iterator() {
if (($state == 0))
{
$state = 1;
return this;
}
else
return new $YielderTest();
}
public boolean hasNext() {
if ((! $nextDefined))
{
$hasNext = getNext();
$nextDefined = true;
}
return $hasNext;
}
public String next() {
if ((! hasNext()))
{
throw new java.util.NoSuchElementException();
}
$nextDefined = false;
return $next;
}
public void remove() {
throw new java.lang.UnsupportedOperationException();
}
public void close() {
do
switch ($state) {
case 5 : ;
$state1 = 6;
$state = 5;
continue ;
default : ;
$state = 6;
return ;
}
while (getNext());
}
private boolean getNext() {
java.lang.Throwable $yieldException;
while (true) {
try
{
switch ($state) {
case 0 : ;
$state = 1;
case 1 : ;
b = true;
case 2 : ;
$yieldException1 = null;
$state1 = 2;
$state = 3;
case 3 : ;
if (b)
{
throw new RuntimeException();
}
$next = "bar";
$state = 5;
return true;
case 4 : ;
$next = "foo";
$state = 5;
return true;
case 5 : ;
{
b = (! b);
}
if (($yieldException1 != null))
{
$yieldException = $yieldException1;
break ;
}
$state = $state1;
continue ;
case 6 : ;
default : ;
return false;
}
}
catch (final java.lang.Throwable $yieldExceptionCaught) {
$yieldException = $yieldExceptionCaught;
}
switch ($state) {
case 3 : ;
if (($yieldException instanceof RuntimeException))
{
e = (RuntimeException) $yieldException;
$state = 4;
continue ;
}
case 4 : ;
$yieldException1 = $yieldException;
$state = 5;
continue ;
default : ;
$state = 6;
java.util.ConcurrentModificationException $yieldExceptionUnhandled = new java.util.ConcurrentModificationException();
$yieldExceptionUnhandled.initCause($yieldException);
throw $yieldExceptionUnhandled;
}
}
}
}
return new $YielderTest();
}
}